import sys
import requests


def checkNetStatus():
    """
    检测校园网上网状态

    :return:
    -1 -> 未登陆状态;
    1 -> 已登陆状态
    """

    url = 'http://1.1.1.1/'
    # 访问校园网首页
    res = requests.get(url)
    # 指定编码为返回的编码格式
    res.encoding = res.apparent_encoding
    # 可读相应内容
    res = res.text

    if '上网登录窗' in res or '<title></title>' in res:
        # print(res)
        print("[❌] 检测到未连接校园网 可以进行连接")
        return -1
    elif '注销页' in res:
        # print(res)
        print("[✅] 检测到已连接校园网 可以进行断连")
        return 1
    else:
        print("[🚫] 登陆校园网的页面似乎被重定向，请排查...")


def login(user_account, user_passowrd):
    url = 'http://1.1.1.1:801/eportal/?c=ACSetting&a=Login&protocol=http:&hostname=1.1.1.1&iTermType=1&wlanuserip=10.133.186.253&wlanacip=10.10.9.200&mac=00-00-00-00-00-00&ip=10.133.186.253&enAdvert=0&queryACIP=0&loginMethod=1'
    postdata = {
        'DDDDD': ',0,' + str(user_account) + '@telecom',
        'upass': str(user_passowrd),
        'R1': '0',
        'R2': '0',
        'R3': '0',
        'R6': '0',
        'para': 00,
        '0MKKey': 123456,
        'buttonClicked': '',
        'redirect_url': '',
        'err_flag': '',
        'username': '',
        'password': '',
        'user': '',
        'cmd': '',
        'Login': ''
    }
    res = requests.post(url, data=postdata)
    res.encoding = res.apparent_encoding
    res = res.text
    if "认证成功页" in res:
        print("登陆成功")
    else:
        print("登陆未成功")


def loginOut():
    url = 'http://1.1.1.1:801/eportal/?c=ACSetting&a=Logout&wlanuserip=null&wlanacip=null&wlanacname=null&port=&hostname=1.1.1.1&iTermType=1&session=null&queryACIP=0&mac=a078177f1389'
    postdata = {
        'c': 'ACSetting',
        'a': 'Logout',
        'wlanuserip': 'null',
        'wlanacip': 'null',
        'wlanacname': 'null',
        'port': '',
        'hostname': '1.1.1.1',
        'iTermType': '1',
        'session': 'null',
        'queryACIP': '0',
        'mac': 'a078177f1389'
    }
    res = requests.post(url, data=postdata)
    print(res)


if __name__ == '__main__':
    # -------------------------------------
    #        校园网连接/断开器
    # 说明:适用于中原工学院的校园网登陆脚本
    # 版本:v1.0
    # 使用方法:修改 acc 和 pwd 为自己的校园网账号
    # -------------------------------------
    acc = ''
    pwd = ''
    if acc == '' or pwd == '':
        print("还未记录账户或密码，请先参考【使用方法】进行修改")
        sys.exit(0)

    checkNetStatus()

    # if status == -1:
    #     login(user_account=acc, user_passowrd=pwd)
    # elif status == 1:
    #     loginOut()
